//***********************************************************************
//	File:		ExplosiveBarrel.h
//	Author:		
//	Course:		SGP 1405
//	Purpose:	
//***********************************************************************
//***********************************************************************
//	Purposfully left blank for all comments regarding this file 
//	
//	
//	
//***********************************************************************



#pragma once
#include "Moveable.h"
class ExplosiveBarrel :
	public Moveable
{
public:
	ExplosiveBarrel(float posX = -1, float posY = -1);
	~ExplosiveBarrel() = default;
	ExplosiveBarrel(const ExplosiveBarrel&) = default; 
	ExplosiveBarrel& operator =(const ExplosiveBarrel&) = default; 

	//Type
	int GetType() const { return ENT_EXPLOSIVEBARREL; }

	//Interface
	void Update(float dt);
	void Render();
	void HandleCollision(const IEntity* pOther);
	void HandleEvent();
	SGD::Rectangle GetRect() const;
	void ModifyHealth(float hpAmount);
	void ApplyFriction(float dt);

	//Explosive Barrel specific
	void Explode(void);

	//Accessors
	float GetDamage() { return m_fDamage; }
	float GetRadius()	{ return m_fRadius;  }
	bool GetIsFrozen() { return m_bIsFrozen; }
	

	//Mutators
	void SetDamage(float dam) { m_fDamage = dam; }
	void SetRadius(float range) { m_fRadius = range; }
	void SetIsFrozen(bool isfro) { m_bIsFrozen = isfro; }
	

private:
	float m_fDamage = 0.0f;
	float m_fRadius = 0.0f;
	bool  m_bIsFrozen = false; 


};

